home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 9
/
FM Towns Free Software Collection 9.iso
/
t_os
/
data
/
fapx
/
fapxonln.plp
< prev
next >
Wrap
Text File
|
1994-11-16
|
68KB
|
2,805 lines
/************************************************************************
* 通信時共通処理ルーチン *
*************************************************************************/
/* 通信時間記録処理 */
%RECTIME{
%dt @getdt;
%time @linetime;
%hh time/3600;
%hh @case(@nochar(hh),1,{im({0}|hh)},,{im(hh)});
%mm (time-time/3600*3600)/60;
%mm @case(@nochar(mm),1,{im({0}|mm)},,{im(mm)});
%ss time-time/60*60;
%ss @case(@nochar(ss),1,{im({0}|ss)},,{im(ss)});
write(LOG2|{CONNECT.DAT},
{tel no=}|@SPP(TELNO,12,1)|
{; logout=}|@getchar(dt,1,10)|{ }|@getchar(dt,17,8)|
{; time=}|hh|{h}|mm|{m}|ss|{s}|
{; id=}|UID|{;\n});
};
/* ログインメッセージ処理 */
%MSGOUT {
write(LOG2|{LASTLOG\}|UID|{.DAT},
@tail(@read(TEMP2|{fmsg.tmp}),{Reserved\n})|CRLF);
%smsg @read(TEMP2|{fmsg.tmp});
%smsg @case(@noline(smsg)>3,{No},{im(smsg)},
{Yes},
{im(@tail(@getline(smsg,1,@noline(smsg)-2),{Reserved\n}))});
case (smsg,CRLF,,,
{
%msgf LOG2|{LASTLOG\}|UID|{.};
case(@filechk(msgf|{MSG}),{Yes},
{case(smsg,@read(msgf|{MSG}),,,
{
dispoff(!DEBUG);
command({copy }|msgf|{MSG }|msgf|{BAK});
dispoff({No});
});
delfile(msgf|{MSG});
});
write(msgf|{MSG},smsg);
});
delfile(TEMP2|{fmsg.tmp});
};
/* ログイン/アウト日時記録と時刻合わせ */
%LASTLOG{
%SetTime{
%a @body(@read(LOG2|{LASTLOG\}|UID|{.DAT}),,
{\n\n ご利用時間は、});
%date @tail(a,{LOG OUT --- },{ });
%time @tail(a,{ });
case (date={}||time={}||@getchar(time,1,2)>22,
{No},
{
dispoff(!DEBUG);
command({time }|time);/* MS-DOSで時間を設定する */
command({date }|date);/* MS-DOSで日付を設定する */
dispoff({No});
});
};
case (LASTCHK<>{No}||SETTIME<>{No},
{Yes},
{
case(UID={},{Yes},{UID:={_DEFAULT}});
mkdir2(LOG2|{LASTLOG});
delfile(LOG2|{LASTLOG\}|UID|{.DAT});
case(@filechk(TEMP2|{fmsg.tmp}),{Yes},{MSGOUT});
receive(LOG2|{LASTLOG\}|UID|{.DAT});
loop ({
type({BYE\n});
wait (Wtime2,{discon;im({No})},
{\n01+},{discon;im({No})},
{HOST NAME?\n*},
{type({OFF\n});wait(3);discon;im({No})},
{◆番号又はコマンドを入力して下さい◆\n},
{im({Yes})}
);
});
stoprec;
},
{No},
{
loop ({
type({BYE\n});
wait (Wtime2,{discon;im({No})},
{\n01+},{discon;im({No})},
{HOST NAME?\n*},
{type({OFF\n});wait(3);discon;im({No})},
{◆番号又はコマンドを入力して下さい◆\n},
{im({Yes})}
);
});
});
case(SETTIME<>{No},{Yes},{SetTime});
case(LASTCHK,{No},
{delfile(LOG2|{LASTLOG\}|UID|{.DAT});rmdir(LOG2|{LASTLOG})});
};
/* 前回ログアウト時間のチェック */
%CHKLASTLOG{
wait (Wtime2,{AbortOff({ホストが重いよぉ~})},
{\n},
{stoprec;
case(@filechk(TEMP2|{fmsg.tmp}),{Yes},
{case (@body(@read(TEMP2|{fmsg.tmp}),
{NIFTY Corporation}),{},
{
CUGFLAG:={Yes};
/* case(@filechk(CDIR2|UID|{.CUG}),{No},
{CUGFLAG:={};
receive(TEMP2|UID|{.TOP});
})*/
},
,{CUGFLAG:={No}})
});
case (@filechk(LOG2|{LASTLOG\}|UID|{.DAT}) && LASTCHK<>{No},
{Yes},
{
case (@tail(@laststr,{LOG OUT },CRLF)=
@tail(@read(LOG2|{LASTLOG\}|UID|{.DAT}),
{LOG OUT --- },CRLF),
{Yes},
{
display({\n前回ログアウト時間の確認}|
{ OK!\n});
},
{No},
{
SNDMSG({okasi_f.snd});
display({\n注意! }|
{前回ログアウト時間が違います!\n});
});
});
});
};
/* アップ/ダウンロード速度記録 */
%UPDNRATE{
[flg,FILE,Fsize,timePS]
%rate Fsize/timePS;
%date @getdt;
%MSG @case (flg,
{up},{im({アップ})},
{down},{im({ダウン})});
%file @case (flg,
{up},{im(LOG2|{upldrate.dat})},
{down},{im(LOG2|{downrate.dat})});
display({\n}|Fsize|{バイト}|MSG|{するのに}|
timePS|{秒くらいかかりました。約}|rate|{byte/sec。\n});
case(APTYPE={x},{Yes},{TELNO:={xxxx-xx-xxxx}});
case (@filechk(file),
{No},
{write(file,{ 日 付 時 刻 電話番号 }|
{A P ファイル名 サイズ 時 間 レート\n})}
);
write(file,
@getchar(date,1,10)|{ }|@getchar(date,17,5)|{ }|
@SPP(TELNO,13,1)|{ ROAD}|APTYPE|{ }|
@SPP(@tail(FILE,{\}),12,1)|{ }|
@SPP(Fsize,7,)|{ }|@SPP(timePS,5,)|{ }|
@SPP(rate,6,)|{\n});
};
/* 異常切断処理 */
%AbortOff{
[CommentB]
display(CommentB);
SNDMSG({okasi_f.snd});
display({\nNIFTYとの通信を強制切断します\n});
footnote({異常終了処理中});
case (RecForm={},
{Yes},,
{No},
{
case (RecForm={All},
{Yes},{DOWNSTOP},
{No},{LOGforum(RecForm,{stop})}
);
});
LASTLOG;
discon;
RECTIME;
display({\nモデムを直接切断しました\n\n});
SNDMSG({owata_f.snd});
footnote({});
stop;
};
/* 異常切断処理 */
%Abort {
[CommentB]
display(CommentB);
SNDMSG({okasi_f.snd});
display({\nNIFTYとの通信を強制切断します\n});
footnote({異常終了処理中});
discon;
display({\nモデムを直接切断しました\n\n});
SNDMSG({owata_f.snd});
footnote({});
stop;
};
/*切断処理 及び 切断終了表示処理*/
%LogOff {
case (CHKBILL={Sometimes},
{Yes},
{
%time @linetime-Stime;
%sec time-(time/60)*60;
case (sec<45&&sec>31,{Yes},{GOBILL});
});
display({\n切断処理を開始しました\n\n});
footnote({終了処理中});
LASTLOG;
RECTIME;
case(@filechk(TEMP2|{newidx.tmp}),{Yes},{CHKnew});
footnote({});
};
%WAITABORT{
[sec]
wait (sec,{AbortOff({\nホストの反応が鈍いよぉ~\n})},
{\n>},, {\nmore>},, {\nnext>},,
{\nFORUM>},, {\nCCS(N)>},, {\nCCS(R)>},,
{\nCCS(P)>},, {\nLIB>},, {\nHP>},,
{\nMAIL>},, {\nBBS>},, {\nPATIO(N)>},,
{\nPATIO(R)>},, {\nPATIO(P)>},, {\n:},,
{\n}|@xc({1b})|{[2J}|@xc({1b})|{[1;1H}|{>},
);
};
%WAITCHAR{
[sec,Waitchr,WaitcmdC]
wait (sec,{AbortOff({\nホストの反応が鈍いよぉ~\n})},
Waitchr,WaitcmdC);
};
/* 初期設定処理 */
%initmode{
case (@tail(MODEM,{00}),
{m},{xon({Yes});rscs({Yes})},
{n},{xon({Yes});rscs({No})});
ctrl ({Yes});
esc ({Yes});
stopbit ({1});
parity ({None});
lineend ({CR});
flyingx ({No});
dataleng({8bit});
logprint({No});
flyline ({3});
sendtype({Line});
dispecho({Yes});
code ({sjis});
};
/* フォーラムのトップメニューへ行く */
%FORUMTOP{[entr]
%ewrite {
ln:=ln+1;
inx:=inx|@tail(@body(@laststr(90),,{\n}),{\n})|CRLF;
case(ln,20,{write(TEMP2|{finfo.tmp},inx);inx:={};ln:=0});
im({Yes})
};
%finfo {
[mode]
case(ln>0,{Yes},{write(TEMP2|{finfo.tmp},inx);inx:={};ln:=0});
case (mode={},
{Yes},
{
case (chk<>2,
{Yes},
{
%fin @read(TEMP2|{finfo.tmp},2);
FTITLE:=@head(fin,{\n},{> })|{> }|
@tail(fin,{> },{\n})|{\n};
%fin @head(fin,FTITLE)|FTITLE|
@tail(fin,FTITLE,{SET });
mkdir2(LOG2|{SIGN});
case (chk,
0,
{write(LOG2|{SIGN\}|fname|{.sgn},
fin|{>MES\n>LIB\n> ***\n})},
1,
{
%st {>MES}|@body(@read(LOG2|{SIGN\}|
fname|{.sgn}),{>MES});
delfile(LOG2|{SIGN\}|fname|{.sgn});
write(LOG2|{SIGN\}|fname|{.sgn},fin|st)
});
},
{No},
{
FTITLE:=@head(@read(LOG2|{SIGN\}|fname|{.sgn}),
{\n},{> })| {> }|
@tail(@read(LOG2|{SIGN\}|fname|{.sgn}),
{> },{\n})|{\n};
});
case (fname,
{BEGIN},{FTITLE:={<練習・質問コーナー>\n}}
);
},
{No},{FTITLE:={}}
);
delfile(TEMP2|{finfo.tmp});
};
%SET {
type({SET MENU ON\n});WAITABORT(Wtime2);
type({SET PAGE OFF\n});WAITABORT(Wtime2);
type({SEND OFF\n});WAITABORT(Wtime2);
case (DLMFLAG={Yes},
{Yes},,
{No},
{type({SET DLM ON\n});WAITABORT(Wtime2);DLMFLAG:={Yes}}
);
};
var inx[1620]; var ln[2];ln:=0;
loop ({
wait (Wtime2,{finfo(1);im({forumGroup})},
{◆番号又はコマンドを入力して下さい◆},
{WAITABORT(Wtime2);finfo(1);SNDMSG({okasi_f.snd});
display({フォーラム名が違っていませんか?\n});
im({forumERROR})},
{入会手続き\n>},
{finfo(0);SNDMSG({okasi_f.snd});
display({入会していないフォーラムです\n});
case(entr,1,{im({NotMember})},,
{
type({3\n});
WAITCHAR(Wtime2,{ 改行のみ実名)\n:},
{type(HANDLE|{\n})});
WAITCHAR(Wtime2,{ (1:OK 2:NG)\n:},
{type({1\n})});
WAITCHAR(Wtime2,{ (1:登録する 2:しない)\n:},
{type({1\n})});
inx:={};ln:=0;
loop ({
wait (Wtime2,
{AbortOff({ホストの反応が鈍いよぉ~})},
{-登録完了-\n},{ewrite},
{続き (改行で表示 E:終了)\n>},
{type({\n});ewrite},
{\n>},{im({No})},
{\nFORUM>},{im({No})},
{\n},{ewrite}
);
});
SET;finfo();im({OK})
})},
{現在、サービスは大変混雑しています。},
{WAITABORT(Wtime2);finfo(1); SNDMSG({okasi_f.snd});
display({混雑しているため次の処理に移ります\n});
im({Busy})},
{-保守作業の為しばらくの間御利用頂けません-},
{WAITABORT(Wtime2);finfo(1); SNDMSG({okasi_f.snd});
display({保守作業中のため次の処理に移ります\n});
im({Maintenance});},
{◆現在このフォーラムはメンテナンス作業中につき},
{WAITABORT(Wtime2);finfo(1); SNDMSG({okasi_f.snd});
display({保守作業中のため次の処理に移ります\n});
im({Maintenance});},
{続き (改行で表示 E:終了)\n>},{type({\n});im({Yes})},
{\nmore>},{type({\n});im({Yes})},
{続き (改行で次メニュー E:終了)\n>},
{type({\n});im({Yes})},
{ステータスチャンネル (人数)\n},
{RtcOpen:={Y};im({Yes})},
{:オプション E:終了\n>},{SET;finfo();im({OK})},
{:保守 E:終了\n>},{SET;finfo();im({OK})},
{\nFORUM>},{SET;finfo();im({OK})},
{\n},
{case (chk<>2,
{Yes},
{ewrite; /* フォーラム初期メッセージ出力 */});
im({Yes});
});
}); /* loop 終了 */
};
/* CUG 会議室に行く */
%CUGMESTOP{
%cinfo {
[mode]
case (mode={},
{Yes},
{
case (fname,
{HIROBA},
{FTITLE:={<メーテル広場> HIROBA\n}},
,{FTITLE:={}}
);
%fin @read(TEMP2|{finfo.tmp},2);
FTITLE:=@head(fin,{\n},{> })|{> }|
@tail(fin,{> },{\n})|{\n};
%fin @head(fin,FTITLE)|FTITLE|
@tail(fin,FTITLE,{SET });
%cum @head(@read(TEMP2|{mesl.tmp},2),{SET MENU ON});
mkdir2(LOG2|{SIGN});
case (chk=0,
{Yes},
{write(LOG2|{SIGN\}|fname|{.sgn},
FTITLE|cum|{> ***\n})},
{No},
{
%st @body(@read(LOG2|{SIGN\}|
fname|{.sgn}),{> ***});
delfile(LOG2|{SIGN\}|fname|{.sgn});
write(LOG2|{SIGN\}|fname|{.sgn},
FTITLE|cum|{> ***|st});
});
},
{No},{FTITLE:={}}
);
delfile(TEMP2|{mesl.tmp});
};
%SET {
type({SET MENU ON\n});WAITABORT(Wtime2);
type({SET PAGE OFF\n});WAITABORT(Wtime2);
case (DLMFLAG={Yes},
{Yes},,
{No},
{type({SET DLM ON\n});WAITABORT(Wtime2);DLMFLAG:={Yes}}
);
};
loop ({
wait (Wtime2,{cinfo(1);im({forumGroup})},
{◆番号又はコマンドを入力して下さい◆},
{WAITABORT(Wtime2);cinfo(1);SNDMSG({okasi_f.snd});
display({現在のIDが違っていませんか?\n});
im({CUGError});},
{-現在会議室には登録されていません-},
{WAITABORT(Wtime2);cinfo(1);SNDMSG({okasi_f.snd});
display({会議室登録を確認してください\n});
im({NotRegister});},
{現在、サービスは大変混雑しています。},
{WAITABORT(Wtime2);cinfo(1); SNDMSG({okasi_f.snd});
display({混雑のため次の処理に移ります\n});
im({Busy});},
{-保守作業の為しばらくの間御利用頂けません-},
{WAITABORT(Wtime2);cinfo(1); SNDMSG({okasi_f.snd});
display({保守作業中のため次の処理に移ります\n});
im({Maintenance});},
{続き (改行で表示 E:終了)\n>},{type({\n});im({Yes})},
{\nmore>},{type({\n});im({Yes})},
{続き (改行で次メニュー E:終了)\n>},
{type({\n});im({Yes})},
{\n>},{SET;cinfo();im({OK})},
{\n},
{
write (TEMP2|{mesl.tmp},/* 会議室名一覧出力 */
@tail(@body(@laststr(90),,{\n}),{\n})|CRLF);
im({Yes});
});
}); /* loop 終了 */
};
/* 看板ファイルチェック */
%defp {
case (@filechk(LOG2|{SIGN\}|fname|{.sgn}),
{No},{im(0)},
{Yes},
{
%tk @read(LOG2|{SIGN\}|fname|{.sgn});
%tm @getchar(@getline(tk,@noline(tk)-1,1),16,14);
%nday @getchar(@daylong,1,14);
case(tm=nday,{Yes},{im(2)},{No},{im(1)});
});
};
/* フォーラムとCUG会議室の区別 */
%CUGFchk{
[fname]
var cfn[8];
var s[50]; s:=CUGFORUMLIST;
loop ({
cfn:=@head(s,{/});
case (cfn,
fname, {im({No})},
{}, {im({No})},
,{s:=@body(s,{/});im({Yes})}
);
});
im(cfn=fname)
};
/* skip top message */
%TOPMENU{
var sdlm[1];
loop ({
wait (Wtime2,{AbortOff({\nホストの反応が鈍いよぉ~\n})},
{NIFTY-Serve TOP},
{WAITABORT(Wtime2)},
{NIFTY-Serve TOP}, /* 94.04.01 NIFTY仕様変更 */
{WAITABORT(Wtime2)},
CUGTOPMENU, /* CUG */
{WAITABORT(Wtime2)},
{CUG トップ},{sdlm:=1;WAITABORT(Wtime2);GONIF},
{\n>},
{
case(TOPON,{No},{im({No})},,
{type({\n});im({Yes})})
});
});
case(sdlm,{},
{
type({SET DLM ON\n});
WAITABORT(Wtime2);
DLMFLAG:={Yes};
});
};
/* niftyへ行く */
%GONIF {
type({GO NIF\n});WAITABORT(Wtime2);
type({1\n});
CUGFLAG:={No};Where:={};
TOPMENU;
};
/* CUGへ行く */
%GOCUGTOP{
case (GOCUGCMD<>{},{Yes},
{type(GOCUGCMD|{\n});
wait (Wtime2,{AbortOff({\nホストの反応が鈍いよぉ~\n})},
CUGTOPMENU,
{
WAITABORT(Wtime2);CUGFLAG:={Yes};
Where:={};
type({SET DLM ON\n});
WAITABORT(Wtime2);DLMFLAG:={Yes};
},
{◆番号又はコマンドを入力して下さい◆},
{WAITABORT(Wtime2)}
);
});
};
/* LOG DOWN START */
%DOWNSTART{
case (LOGmode={forum},{No},
{
case (RECFILE,{},
{
display({\nダウンロードを開始します\n});
case (COMPRESS={Yes}&&ARCHIVER<>{},
{Yes},
{RECFILE:=TEMP2|{fapx.log};
receive(RECFILE)},
{No},
{
mkdir2(LOG2|{Niftylog});
RECFILE:=LOG2|{Niftylog\}|
@crefile(LOG2|{Niftylog},{log});
receive(RECFILE);
});
},,
{
dispoff(!DEBUG);
display({\nダウンロードを再開します\n});
dispoff({No});
receive(RECFILE)
});
RecForm:={All};
})
};
/* LOG DOWN STOP */
%DOWNSTOP{
case (LOGmode={forum},{No},
{
stoprec;
RecForm:={};
case (COMPRESS={Yes}&&ARCHIVER<>{},
{Yes},
{
%file @nowfile2(RECFILE,TEMP);
dispoff(!DEBUG);
command(ARCHIVER|{ a }|LOG2|{Niftylog.lzh }|
TEMP2|file);
dispoff({No});
delfile(TEMP2|file);
},
{No},{}
);
display({\nダウンロードを終了しました\n});
setcdir(CDIR);
RECFILE:={};
});
};
/* LOG DOWN PAUSE */
%DOWNPAUSE{
case (LOGmode={forum},{No},
{
stoprec;
RecForm:={};
dispoff(!DEBUG);
display({\nダウンロードを中断しました\n});
dispoff({No});
});
};
/* フォーラム毎にダウンロードファイルを作成する */
%LOGforum{
[fname,mode]
%dlt {
RecForm:={};delfile(RECFILE);
setcdir(CDIR);
rmdir(@body(RECFILE,,{\}));
RECFILE:={};
};
case (mode,
{start},
{
RecForm:=fname;
case (RECFILE,{},
{
display({\n}|@tail(fname,{\})|
{のダウンロードを開始します\n});
case (COMPRESS={Yes}&&@filechk(ARCHIVER)={Yes},
{Yes},
{
RECFILE:=TEMP2|fname|{.log};
mkdir2(@body(RECFILE,,{\}));
delfile(RECFILE);
receive(RECFILE)
},
{No},
{
RECFILE:=LOG2|fname|{\}|
@crefile(LOG2|fname,{log});
receive(RECFILE)
});
},,
{
dispoff(!DEBUG);
display({\n}|@tail(fname,{\})|
{のダウンロードを再開します\n});
dispoff({No});
receive(RECFILE)
});
},
{pause},
{
stoprec;
RecForm:={};
dispoff(!DEBUG);
display({\n}|@tail(fname,{\})|{のダウンロードを中断しました\n});
dispoff({No});
},
{stop},
{
stoprec;
RecForm:={};
display({\n}|@tail(fname,{\})|{のダウンロードを終了しました\n});
case(COMPRESS={Yes}&&@filechk(ARCHIVER)={Yes},
{Yes},
{
mkdir2(@body(RECFILE,,{\}));setcdir(TEMP);
%file @nowfile2(RECFILE,TEMP);
dispoff(!DEBUG);
command(ARCHIVER|{ a }|LOG2|fname|{.lzh }|TEMP2|file);
dispoff({No});
delfile(TEMP2|file);
});
setcdir(CDIR);
RECFILE:={};
},
{cancel},
{
stoprec;
display({\n}|@tail(fname,{\})|{のダウンロードを取消しました\n});
dlt
},
{del},
{
stoprec;
display({\n}|@tail(fname,{\})|{のダウンロードを終了しました\n});
dlt
});
};
%PAUSE {
[fname]
DOWNPAUSE;
case(LOGmode,{forum},{LOGforum(fname,{pause})});
};
%RESUME {
[fname]
DOWNSTART;
case(LOGmode,{forum},{LOGforum(fname,{start})});
};
/************************************************************************
* NIFTY内高速移動処理ルーチン *
* GO( {forum/FORUM/mes/99} ); *
* {forum/FORUM/lib/99} *
* {forum/FORUM/bul} *
* {forum/FORUM} *
* {cugmes/NAME/mes/99} *
* {cugmes/NAME} *
* {hp/DEF12345/PASSWORD} *
* {patio/XYZ98765/PASSWORD/mes/99} *
* {mail} *
* {wpnc} *
* {center} *
* {newyear/text} *
* {NAPnewyear/text} *
*************************************************************************/
%GO {
[goto]
%meswait{
wait (Wtime4,
{Where:={};im({No})},
{◆番号又はコマンドを入力して下さい◆},
{WAITABORT(Wtime2);im({No})},
{◆該当する会議室がありません◆},
{WAITABORT(Wtime2);im({No})},
{◆この機能は本フォーラムではご利用できません},
{WAITABORT(Wtime2);im({No})},
{-この会議室はリードオンリーです-},
{
mltitle:=@laststr(128);
WAITABORT(Wtime2);
Where:=goto;
im({ReadOnly});
},
{電子会議},
{
mltitle:=@laststr(128);
WAITABORT(Wtime2);
Where:=goto;im({Yes})
});
};
%GOforum{
case (@nth(Where,1,{/})={forum} &&
@nth(Where,2,{/})=@nth(goto,2,{/}),
{No},
{
%fname @nth(goto,2,{/});%chk @defp;
case (CUGFLAG,
{No},{case(@CUGFchk(fname),{Yes},{GOCUGTOP});},
{Yes},{case(@CUGFchk(fname),{No},{GONIF});}
);
type({GO }|fname|{\n});
case(fname,{BEGIN},{WAITABORT(Wtime2);type({4\n})});
case (@FORUMTOP(0),
{OK},
{
Where:={forum/}|@nth(goto,2,{/});
case (@nth(goto,3,{/}),
{mes},{GOmes},
{lib},{GOlib},
{bul},{GObul},
,{im({Yes})}
);
},
{forumERROR},
{Where:={};im({No})},
{NotMember},
{Where:={};im({No})},
{Busy},
{Where:={};im({No})},
{Maintenance},
{Where:={};im({No})},
,
{Where:={};im({No})}
);
},
{Yes},
{
case (@nth(goto,3,{/}),
{mes},{GOmes},
{lib},{GOlib},
{bul},{GObul},
,{im({Yes})}
);
});
};
%GOmes {
case (@nth(Where,3,{/})={mes},
{Yes},
{
case (@nth(Where,4,{/}),@nth(goto,4,{/}),
{im({Yes})},
{},
{
type(@nth(goto,4,{/}));type({\n});
meswait;
},
,
{
type({RX }|@nth(goto,4,{/}));type({\n});
meswait;
});
},
{No},
{
type({MES }|@nth(goto,4,{/}));type({\n});
meswait;
});
};
%GOlib {
%libwait{
wait (Wtime4,
{Where:={};im({No})},
{◆番号又はコマンドを入力して下さい◆},
{WAITABORT(Wtime2);im({No})},
{◆該当するライブラリがありません◆},
{WAITABORT(Wtime2);im({No})},
{◆これ以降のライブラリはありません◆},
{WAITABORT(Wtime2);im({No})},
{◆この機能は本フォーラムではご利用できません},
{WAITABORT(Wtime2);im({No})},
{データライブラリ (1:データ一覧},
{
mltitle:=@laststr(128);
WAITABORT(Wtime2);
Where:=goto;im({Yes})
});
};
case (@nth(Where,3,{/})={lib},
{Yes},
{
case (@nth(Where,4,{/}),@nth(goto,4,{/}),
{im({Yes})},
{},
{
type(@nth(goto,4,{/}));type({\n});
libwait;
},
,
{
type({LX }|@nth(goto,4,{/}));type({\n});
libwait;
});
},
{No},
{
type({LIB }|@nth(goto,4,{/}));type({\n});
libwait;
});
};
%GObul {
case (@nth(Where,3,{/})={bul},
{No},
{
type({BUL\n});
wait (Wtime4,
{Where:={};im({No})},
{◆番号又はコマンドを入力して下さい◆},
{WAITABORT(Wtime2);im({No})},
{◆この機能は本フォーラムではご利用できません},
{WAITABORT(Wtime2);im({No})},
{\n>},
{Where:=goto;im({Yes})}
);
});
};
%GOcugmes{
%GOcmes {
case (@nth(Where,4,{/}),@nth(goto,4,{/}),
{im({Yes})},
{},
{
type(@nth(goto,4,{/})|{\n});
meswait;
},
,
{
type({RX }|@nth(goto,4,{/})|{\n});
meswait;
});
};
case (@nth(Where,1,{/})={cugmes} &&
@nth(Where,2,{/})=@nth(goto,2,{/}),
{No},
{
%fname @nth(goto,2,{/});%chk @defp;
case (CUGFLAG,{No},{GOCUGTOP});
type({GO }|fname|{\n});
case (@CUGMESTOP,
{OK},
{
Where:={cugmes/}|@nth(goto,2,{/})|{/mes};
case (@nth(goto,3,{/}),
{mes},{GOcmes},
,{im({Yes})}
);
},
{CUGError},
{Where:={};im({No})},
{NotRegister},
{Where:={};im({No})},
{Busy},
{Where:={};im({No})},
{Maintenance},
{Where:={};im({No})},
,
{Where:={};im({No})}
);
},
{Yes},
{
case (@nth(goto,3,{/}),
{mes},{GOcmes},
,{im({Yes})}
);
});
};
%GOmail {
case (@nth(Where,1,{/})={mail},
{No},
{
type({GO MAIL\n});
/* type({GO NEWMAIL\n}); */
wait (Wtime2,
{Where:={};im({No})},
{◆番号又はコマンドを入力して下さい◆},
{Where:={};im({No})},
{現在、サービスは大変混雑しています。},
{Where:={};im({No})},
{0:その他 E:終了)\n>},
{Where:={mail};im({Yes})},
{\nMAIL>},
{Where:={mail};im({Yes})},
);
},
{Yes},
{im({Yes})}
);
};
%GONAPnewyear{
case (Where={NAPnewyear/text},
{No},
{
case(CUGFLAG,{Yes},{GONIF});
type({GO NEWYEAR\n});
wait (Wtime2,
{Where:={};im({No})},
{◆番号又はコマンドを入力して下さい◆},
{Where:={};im({No})},
{1994年大予想\n>},
{
type({2\n});
wait (Wtime2,
{Where:={};im({No})},
{ 2. 送信(\)\n 3. NAPLPS(\)\n>},
{
type({3\n});
wait (Wtime2,
{Where:={};im({No})},
{ 1. 初日の出 2. 富士山\n>},
{Where:=goto;im({Yes})}
);
});
});
},
{Yes},
{im({Yes})}
);
};
%GOnewyear{
case (Where={newyear/text},
{No},
{
case(CUGFLAG,{Yes},{GONIF});
type({GO NEWYEAR\n});
/* type({GO NEWMAIL\n}); */
wait (Wtime2,
{Where:={};im({No})},
{◆番号又はコマンドを入力して下さい◆},
{Where:={};im({No})},
{1994年大予想\n>},
{
type({2\n});
wait (Wtime2,
{Where:={};im({No})},
{ 2. 送信(\)\n 3. NAPLPS(\)\n>},
{
type({2\n});
wait (Wtime2,
{Where:={};im({No})},
{2:アップロード E:終了)\n>},
{Where:=goto;im({Yes})}
);
});
});
},
{Yes},
{im({Yes})}
);
};
%GOwpnc {
case (@nth(Where,1,{/})={wpnc},
{No},
{
case(CUGFLAG,{Yes},{GONIF});
type({GO WPNCSEND\n});
wait (Wtime2,
{Where:={};im({No})},
{◆番号又はコマンドを入力して下さい◆},
{Where:={};im({No})},
{2:アップロード E:終了)\n>},
{Where:={wpnc};im({Yes})},
);
},
{Yes},
{im({Yes})}
);
};
%GOcenter{
case (@nth(Where,1,{/})={center},
{No},
{
case(CUGFLAG,{Yes},{GONIF});
type({GO CENTER\n});
wait (Wtime2,
{Where:={};im({No})},
{◆番号又はコマンドを入力して下さい◆},
{Where:={};im({No})},
{センター宛メール FEEDBACK or CENTER\n},
{WAITABORT(Wtime2);Where:={center};im({Yes})},
);
},
{Yes},
{im({Yes})}
);
};
%GOhp {
case (@nth(Where,1,{/})={hp},
{No},
{
case(CUGFLAG,{Yes},{GONIF});
type({GO HP\n});
WAITCHAR(Wtime2,{2. ご案内\n>},{type({1\n})});
wait (Wtime2,{Where:={};im({No})},
{御利用頂けません-},
{WAITABORT(Wtime2);Where:={};im({No})},
{:自分のHP)\n:},
{type(@nth(goto,2,{/}));type({\n});
wait (Wtime2,{Where:={};im({No})},
{◆該当する利用者のHome Partyはありません◆\n},
{
WAITCHAR(Wtime2,{2. ご案内\n>},{});
SNDMSG({okasi_f.snd});
display({HPのIDが違っています\n});
Where:={};
im({No});
},
{現在、サービスは大変混雑しています},
{
WAITCHAR(Wtime2,{2. ご案内\n>},{});
SNDMSG({okasi_f.snd});
display({NIFTYが混雑しています\n});
Where:={};
im({No});
},
{(1:設定する 2:しない)\n:},
{
type({2\n});
WAITABORT(Wtime2);
Where:={};
im({No});
},
{パスワード\n:},
{
var flg [5];
flg:={OK};
loop ({
type(@nth(goto,3,{/}));type({\n});
wait (Wtime2,
{AbortOff({\nホストの反応が}|
{鈍いよぉ~\n})},
{\nHP>},
{Where:=goto;im({No})},
{パスワード\n:},
{flg:={Error};im({Yes})},
{2. ご案内\n>},{im({No})}
);
});
case(flg,{Error},{Where:={}});
im(Where=goto);
},
{◆入力データエラー◆},
{
SNDMSG({okasi_f.snd});
display({\nHPのIDが違っています\n});
type({XYZ99999\n});
WAITABORT(Wtime2);
Where:={};
im({No});
},
{\nHP>},{Where:=goto;im({Yes})}
);
});
},
{Yes},
{
case (@nth(Where,2,{/})=@nth(goto,2,{/}),
{Yes},{im({Yes})},
{No},{MOVEhp}
);
});
};
%MOVEhp {
type({MOV\n});
wait (Wtime2,
{Where:={};im({No})},
{ID (改行のみ:自分のHP)\n:},
{
type(@nth(goto,2,{/}));type({\n});
wait (Wtime2,
{Where:={};im({No})},
{パスワード\n:},
{
var flg [5];
flg:={OK};
loop ({
type(@nth(goto,3,{/}));type({\n});
wait (Wtime2,
{Where:={};im({No})},
{\nHP>},
{Where:=goto;im({No})},
{パスワード\n:},
{flg:={Error};im({Yes})}
);
});
case(flg,{Error},{Where:={}});
im(Where=goto);
},
{する利用者のHome Partyはありません◆\nHP>},
{
SNDMSG({okasi_f.snd});
display({\nHPのIDが違っています\n});
Where:={};
im({No});
},
{◆入力データエラー◆},
{
SNDMSG({okasi_f.snd});
display({\nHPのIDが違っています\n});
type({ZZZ99999\n});
WAITABORT(Wtime2);
Where:={};
im({No});
},
{\nHP>},{Where:=goto;im({Yes})}
);
});
};
%GOpatio{
case (@nth(Where,1,{/})={patio}&&
@nth(Where,2,{/})=@nth(goto,2,{/}),
{No},
{
case(CUGFLAG,{Yes},{GONIF});
type({GO PATIO\n});
WAITCHAR(Wtime2,{ 1. ご案内 2. サービスに入る\n>},
{type({2\n})});
WAITCHAR(Wtime2,{:自分のパティオ)\n:},
{type(@nth(goto,2,{/}));type({\n})});
wait (Wtime2,
{Where:={};im({No})},
{◆該当するパティオはありません◆\n},
{
WAITCHAR(Wtime2,{2. サービスに入る\n>},{});
SNDMSG({okasi_f.snd});
display({パティオのIDが違っています\n});
Where:={};
im({No});
},
{(1: 設定する 2: しない)\n:},
{
SNDMSG({okasi_f.snd});
display({パティオのIDが違っています\n});
type({2\n});
WAITABORT(Wtime2);
Where:={};
im({No});
},
{パスワード\n:},
{
loop ({
type(@nth(goto,3,{/}));type({\n});
wait (Wtime2,
{Where:={};im({No})},
{パスワード\n:},
{im({Yes})},
{2. サービスに入る\n>},
{
SNDMSG({okasi_f.snd});
display(@nth(goto,2,{/})|
{のパスワードが違います\n});
Where:={};
im({No});
},
{ (未読) 最新 会議室名},
{
WAITABORT(Wtime2);
type({SET DLM ON\n});
WAITABORT(Wtime2);
type(@nth(goto,5,{/}));
type({\n});
wait (Wtime2,
{Where:={}},
{◆該当する会議室が}|
{ありません},
{Where:={}},
{\n>},
{Where:=goto},
{\nPATIO(N)>},
{Where:=goto},
{\nPATIO(R)>},
{Where:=goto},
{\nPATIO(P)>},
{Where:=goto}
);
im({No});
},
{(1: 同意する 2: しない)\n:},
{
type({1\n});
WAITCHAR(Wtime2,
{改行で登録名)\n:},{});
type(HANDLE|{\n});
WAITCHAR(Wtime2,
{(1:OK 2:NG)\n:},{});
type({1});
im({No});
});
});
im(Where=goto);
});
},
{Yes},{im({Yes})}
);
};
case (@nth(goto,1,{/}),
{forum},{GOforum},
{cugmes},{GOcugmes},
{hp}, {GOhp},
{patio},{GOpatio},
{mail}, {GOmail},
{wpnc}, {GOwpnc},
{center},{GOcenter},
{newyear},{GOnewyear},
{NAPnewyear},{GONAPnewyear},
,{im({No})}
);
};
/* NIFTY内の任意の場所からトップメニューに戻る */
%gotoTOP{
[mode]
chat({No});
dispoff(!DEBUG);
%te @case(mode=0||(mode=1&&FREE1==1&&!(PAD={None}&&
(MAILDOWN={No}||(MLcnt==0&&MAILDEL={No}&&CHKSDL={No}))&&
@filechk(UP2|{_FORUM.CTL})={No}&&WEATHER={No}&&
(@filechk(UP2|{fapxup.ctl})={No}||UPT={No})&&
((@filechk(UP2|{fapxdown.ctl})={No}&&
@filechk(UP2|{fapxrtn.ctl})={No})||DNT={No})&&
DONIFTY={No}&&CHKBILL={No}&&NewsDown={No}))||
(mode=1&&FREE1==2&&(
(UPT={last}&&@filechk(UP2|{fapxup.ctl})={Yes})||
(DNT={last}&&(
@filechk(UP2|{fapxdown.ctl})={Yes}||
@filechk(UP2|{fapxrtn.ctl})={Yes})))),
{Yes},{im(0)},{No},{im(1)});
%lpv @loop ({
case(te,0,{type({/TT\n})},1,{type({/E\n})});
im({No});
wait (Wtime2,
{break;WAITABORT(Wtime2);im({Yes})},
{◆正しい番号を入力してください◆\n}|
{確認 (1:OK 2:NG)\n:},
{
type({2\n});WAITABORT(Wtime2);
type({\n});WAITABORT(Wtime2);
type({\n});
WAITCHAR(Wtime2,{番号},{break;WAITABORT(Wtime2)})
},
{確認 (1:OK 2:NG)\n:},
{
type({2\n});WAITABORT(Wtime2);
type({\n});WAITABORT(Wtime2);
type({\n});
WAITCHAR(Wtime2,{番号},{break;WAITABORT(Wtime2)})
},
{◆入力データエラー◆\n}|
{日付 (YYMMDD 改行で日付省略)\n:},
{type({\n});break;WAITABORT(Wtime2)},
{◆入力データエラー◆\n}|
{ID (改行のみ:自分のパティオ)\n:},
{
type({E\n});
wait (Wtime2,
{AbortOff({\nホストの反応が鈍いよぉ~\n})},
{\n>},,
{◆入力データエラー◆},
{
WAITABORT(Wtime2);type({E\n});
WAITABORT(Wtime2)
})
},
{◆パスワードが間違っています◆\nパスワード\n:},
{
type({\n});
wait (Wtime2,
{AbortOff({\nホストの反応が鈍いよぉ~\n})},
{\n>},,
{◆パスワードが間違っています◆},
{
WAITABORT(Wtime2);type({\n});
WAITABORT(Wtime2)
})
},
{\nmore>},
{type({E\n});WAITABORT(Wtime2)},
{E:終了)\n:},
{type({E\n});WAITABORT(Wtime2)},
{続き(改行のみ:次頁)\n>},
{type({E\n});WAITABORT(Wtime2)},
{◆正しい番号を入力してください◆},
{WAITABORT(Wtime2);type({E\n});WAITABORT(Wtime2)},
{\n:},
{type({\n});WAITABORT(Wtime2)},
{◆番号又はコマンドを入力して下さい},
{WAITABORT(Wtime2)},
{◆コマンドを入力して},
{WAITABORT(Wtime2)},
{◆正しいコマンドを入力して下さい},
{WAITABORT(Wtime2)},
{◆入力データエラー},
{
wait (Wtime2,
{AbortOff({\nホストの反応が鈍いよぉ~\n})},
{改行で終了)\n:},
{type({\n});WAITABORT(Wtime2)},,
{WAITABORT(Wtime2)}
)
},
{\n>},,
{NIFTY-Serve TOP},
{break;CUGFLAG:={No};WAITABORT(Wtime2);im({top})},
{NIFTY-Serve TOP},
{break;CUGFLAG:={No};WAITABORT(Wtime2);im({top})},
CUGTOPMENU,
{break;CUGFLAG:={Yes};WAITABORT(Wtime2);im({top})},
{CUG トップ},/* CUG */
{break;WAITABORT(Wtime2);GONIF;im({top})},
)
});
case(lpv={No}&&te=0,
{Yes},
{
type({TT\n});
WAITCHAR(Wtime2,{TT\n},
{wait (Wtime2,
{AbortOff({\nホストの反応が鈍いよぉ~\n})},
{NIFTY-Serve TOP},
{break;CUGFLAG:={No};WAITABORT(Wtime2)},
{NIFTY-Serve TOP},
{break;CUGFLAG:={No};WAITABORT(Wtime2)},
CUGTOPMENU,
{break;CUGFLAG:={Yes};WAITABORT(Wtime2)},
{CUG トップ},/* CUG */
{break;WAITABORT(Wtime2);GONIF},
);
});
});
case(te=0&&(lpv={No}||lpv={TOP}),
{Yes},
{
type({SET FF OFF\n}); WAITABORT(Wtime2);
type({SET MENU ON\n}); WAITABORT(Wtime2);
type({SET PAGE OFF\n}); WAITABORT(Wtime2);
type({SET DLM ON\n}); WAITABORT(Wtime2); DLMFLAG:={Yes};
});
dispoff({No});
};
/* 割引時間帯かどうかを判定する */
%discntime{
[dt] /* @daylong形式 */
%hhmm @getchar(dt,16,2)|@getchar(dt,19,2);
%time2 @getchar(ACCESS2,1,2)|@getchar(ACCESS2,4,2);
im(hhmm>=0300 && hhmm<=1159 && hhmm<=time2);
};
/************************************************************************
* ダイヤリング開始処理 *
*************************************************************************/
/* type @p */
%typeCNIF{
N2:=0;
loop ({
type({C NIF\n});
wait (Wtime2,
{im({TimeOut})},
{HOST NAME?\n*},
{case (N2<5, {No},{im({RetryOver})},
{Yes},{im({Yes})})},
{Enter},
{im({Connect})},
{本日は定期メンテナンス},
{im({Maintenance})}
);
N2:=N2+1;
});
};
%Road2p {
wait (6,{type({@P\n})});
wait (Wtime2,{im({TimeOut})},
{HOST NAME?\n*},{TELNO:=road2;APTYPE:={2};typeCNIF});
};
%Road3 {
wait (Wtime2,{im({TimeOut})},
{ROAD 3\n\nHOST NAME?\n*},{TELNO:=road3;APTYPE:={3};typeCNIF},
{ROAD 4\n\nHOST NAME?\n*},{TELNO:=road3;APTYPE:={4};typeCNIF}
);
};
/* type .00+ and retry */
%type00 {
N2:=0;
loop ({
wait(2);
type({.00+});
wait (Wtime2,
{im({TimeOut})},
{71+},
{im({Maintenance})},
{46+},
{case (N2<5, {No},{im({RetryOver})},
{Yes},{im({Yes})})},
{+\n00+},
{case (N2<5, {No},{im({RetryOver})},
{Yes},{im({Yes})})},
{Enter},
{TELNO:=@head(road1,{/});APTYPE:={1};im({Connect})},
{Host is not in service},
{im({Maintenance})},
{Please call again},
{im({Maintenance})},
{本日は定期メンテナンス},
{im({Maintenane})}
);
N2:=N2+1;
});
};
%callrd1{
N31:=N31+1;
road1:=@nth(ROAD1,N31,{;});
case (road1={},{Yes},{N31:=0});
case (N1>REDIAL,
{Yes},{im({RedialOver})},
{No},
{
case (@head(road1,{/})={},
{Yes},
{im({NoTelephone})},
{No},
{
N1:=N1+1;
display({\nROAD1に電話をかけます\n});
case (@nth(road1,2,{/})={1200},
{Yes},
{
baud(1200);
discon;
type({ATZ\n});
wait(Wtime1,,{OK\n},);
dialone({AT}|@nth(MODEM,1,{/})|{D}|DIAL|
@nth(road1,1,{/}),type00,{im({Busy})});
},
{No},
{
case(@getchar(@nth(MODEM,2,{_}),1,4)={1200},
{Yes},
{
baud(1200);
discon;
type({ATZ\n});
wait(Wtime1,,{OK\n},);
dialone({AT}|@nth(MODEM,1,{/})|{D}|
DIAL|@nth(road1,1,{/}),
type00,{im({Busy})});
},
{No},
{
baud(2400);
discon;
type({ATZ\n});
wait(Wtime1,,{OK\n},);
dialone({AT}|@nth(MODEM,1,{/})|
@nth(MODEM,2,{/})|{D}|DIAL|
@nth(road1,1,{/}),
type00,{im({Busy})});
});
});
});
});
};
%callrd2{
N32:=N32+1;
road2:=@nth(ROAD2,N32,{;});
case (road2={},{Yes},{N32:=0});
case (N1>REDIAL,
{Yes},
{im({RedialOver})},
{No},
{
case (road2={},
{Yes},{im({NoTelephone})},
{No},
{
N1:=N1+1;
display({\nROAD2に電話をかけます\n});
case(@getchar(@nth(MODEM,2,{_}),1,4)={1200},
{Yes},{baud(1200)},{No},{baud(2400)});
discon;
type({ATZ\n});
wait(Wtime1,,{OK\n},);
dialone({AT}|@nth(MODEM,1,{/})|@nth(MODEM,2,{/})|{D}|
DIAL|road2,Road2p,{im({Busy})});
});
});
};
%callrd3{
N33:=N33+1;
road3:=@nth(ROAD3,N33,{;});
case (road3={} && N33>1,
{Yes},{N33:=1;road3:=@nth(ROAD3,N33,{;})});
case (N1>REDIAL,
{Yes},
{im({RedialOver})},
{No},
{
case (road3={},
{Yes},{im({NoTelephone})},
{No},
{
N1:=N1+1;
display({\nROAD3/4に電話をかけます\n});
case (@getchar(@nth(MODEM,2,{_}),1,4),
{1200},{baud(1200)},
{2400},{baud(2400)},
{4800},{baud(4800)},
{9600},{case (RD3SPEED,
{4800},{baud(4800)},
{9600},{baud(9600)},
{19200},{baud(9600)},
,{baud(4800)})},
{1440},{case (RD3SPEED,
{4800},{baud(4800)},
{9600},{baud(9600)},
{19200},{baud(9600)},
,{baud(4800)})},
{1920},{case (RD3SPEED,
{4800},{baud(4800)},
{9600},{baud(9600)},
{19200},{baud(19200)},
,{baud(4800)})}
);
discon;
type({ATZ\n});
wait(Wtime1,,{OK\n},);
dialone({AT}|@nth(MODEM,1,{/})|@nth(MODEM,2,{/})|{D}|
DIAL|road3,Road3,{im({Busy})});
});
});
};
%DIALING{
N1:=0;
N31:=0; N32:=0; N33:=0;
loop ({
case (AP3={Yes},
{Yes},
{
case (@callrd3,
{Connect},{im({No})},
{Maintenance},
{AbortOff({NIFTYがメンテナンス中です\n})},
{RedialOver},
{Abort({\n}|REDIAL|
{回かけても電話がつながりません\n})},
{NoTelephone},{im({No})},
,{im({Yes})}
);
},
{No},
{
case (@callrd2,
{Connect},{im({No})},
{Maintenance},
{AbortOff({NIFTYがメンテナンス中です\n})},
{RedialOver},
{Abort({\n}|REDIAL|
{回かけても電話がつながりません\n})},
,
{
case (@callrd1,
{Connect},{im({No})},
{Maintenance},
{AbortOff({NIFTYがメンテナンス}|
{中です\n})},
{RedialOver},
{Abort({\n}|REDIAL|
{回かけても電話が}|
{つながりません\n})},
,{im({Yes})}
);
});
});
});
};
/************************************************************************
* ログイン開始処理 *
*************************************************************************/
%AUTOLOGIN
{
%MSGCHK {
%msgfile @case(@filechk(LOG2|{LASTLOG\}|ID|{.MSG}),{Yes},
{im(LOG2|{LASTLOG\}|ID|{.MSG})},{No},
{case(@filechk(LOG2|{LASTLOG\_DEFAULT.MSG}),{Yes},
{im(LOG2|{LASTLOG\_DEFAULT.MSG})},{No},{im({})})});
case(msgfile,{},{im({No})},,
{
%msg @head(@body(@read(msgfile),
{定期メンテナンスのため、}),{まで、\n}|
{センターのサービスを停止});
case(msg,{},{im({No})},,
{
%mday @ZERO(@head(msg,{月})+1-1,2)|{/}|
@ZERO(@head(msg,{月},{日})+1-1,2);
%msg @tail(msg,{)});
case(@getchar(@daylong,6,5),mday,
{
%tc {[time]
%g @case(@getchar(time,1,4),
{午前},{im({0})},
{午後},{im({12})});
%t @ZERO(@getchar(time,5,2),2);
%m @getchar(time,9,2);
im(t+g|m)
};
%hhmm @getchar(@daylong,16,2)|
@getchar(@daylong,19,2);
%m1 @head(msg,{から});
%m2 @tail(msg,{から});
%time1 @tc(@head(msg,{から}));
%time2 @tc(@tail(msg,{から}));
im(hhmm>=time1 && hhmm<=time2);
},,{im({No})});
});
});
};
display({NIFTYへの接続を開始します\n\n});
footnote({NIFTYへの接続処理をしています});
initmode; /* 各種初期設定 */
case (ID<>{} && @filechk(CDIR2|ID|{.CUG}),{Yes},
{%SetCUG {setcdir(CDIR);#}|ID|{.CUG};SetCUG});
case (ROAD3,{},{AP3:={No}});
case (ROAD3<>{}&&@head(ROAD1,{/})={}&&ROAD2={},{Yes},{AP3:={Yes}});
case ((ID={})||
(AP3={Yes}&&ROAD3={})||
(AP3<>{Yes}&&@head(ROAD1,{/})={}&&ROAD2={}),
{Yes},
{AbortOff({電話番号かユーザーIDが指定されていません})},
{No},
{
case(@MSGCHK,{Yes},
{
display({NIFTYがメンテナンス中と思われますので、}|
{接続処理を中止します。\n});
RETCD:={Cancel};wait(1);
},
{No},{DIALING;
WAITCHAR(Wtime2,{Connection-ID --->},{type({SVC\n})});
wait (Wtime2,{AbortOff({\nホストの反応が鈍いよぉ~\n})},
{Enter User-ID --->},
{
type(ID|{\n});
UID:=ID;
},
{\n INPUT Error},
{AbortOff(
{\nあれぇ?『SVC』受け付けてくれないよぉ~\n})}
);
wait (Wtime2,{AbortOff({\nホストの反応が鈍いよぉ~\n})},
{Enter Password --->},
{
case (PassWord={*}||PassWord={},
{Yes},
{
SNDMSG({nyuryo_f.snd});
chat({Yes});
sendtype({Ch/2});
footnote({パスワードを入力してください});
wait (,,
{\n\n},
{
Stime:=@linetime;
chat({No});
sendtype({Line});
});
footnote({});
},
{No},
{type(PassWord);type({\n});Stime:=@linetime;}
);
delfile(TEMP2|{fmsg.tmp});receive(TEMP2|{fmsg.tmp});
wait (Wtime2,
{
stoprec;
AbortOff({\nホストの反応が鈍いよぉ~\n});
},
{\n Password ERROR},
{
stoprec;type({E\n});
AbortOff(
{\nパスワードがおかしいですよ?\n})},
{\n前回LOG OUT},{CHKLASTLOG}
);
loop ({
wait (Wtime2,
{AbortOff({\nホストの反応が鈍いよぉ~\n})},
{通)--},
{
MLcnt:=@head(@body(@laststr,
{(未読分}),{通)-})+1-1;
im({Yes});
},
{NIFTY-Serve TOP},
{CUGFLAG:={No};WAITABORT(Wtime2)},
{NIFTY-Serve TOP},
{CUGFLAG:={No};WAITABORT(Wtime2)},
CUGTOPMENU,
{CUGFLAG:={Yes};WAITABORT(Wtime2)},
{CUG トップ},
{WAITABORT(Wtime2);GONIF},
{\n今週のお知らせ NEW\n},
{
case (READNEW,
{Idx},{NewIDX},
{New},{NewsDown:={Yes}}
);
type({\n});im({Yes});
},
{\n>},
{
case(CUGFLAG,{},{stoprec},{No},
{case(TOPON,{No},{im({No})},,
{type({\n});WAITABORT(Wtime2)})
});
});
});
type({SET FF OFF\n});WAITABORT(Wtime2);
type({SET MENU ON\n});WAITABORT(Wtime2);
type({SET PAGE OFF\n});WAITABORT(Wtime2);
},
{\n User-ID Error},
{AbortOff({\nIDが間違ってませんか?\n})},
,{AbortOff({\nNIFTYがおかしいてず(T_T)\n})}
);
});
});
Where:={};
};
/************************************************************************/
/* NIFTYの割引料金時間帯に自動実行開始する */
/************************************************************************/
%WAIT3AM{
footnote({3:00am - 7:59amの間に自動通信を開始します。});
%nowhh @getchar(@daylong,16,2);
case (nowhh>=3 && nowhh<=7,
{Yes}, {RETCD:={Start}},
{No}, {WAITS({03:10})}
);
};
%WAITSETTIME{
%access ACCESS;
footnote({通信開始時刻を設定してください});
loop ({
SNDMSG({nyuryo_f.snd});
%a @plane(
{c通信開始時刻を指定してください [HH:MM]\n}|
{c 現在時刻は }|@getchar(@daylong,16,5)|{ です\n}|
{t 設定時刻 /xxxxx\n}|
{s / 設定 / 取消 / 即時 \n},
access);
%access @head(@getline(a,1,1),{\n});
%ok @head(@getline(a,2,1),{\n});
case (ok,
{ 1},
{
case (@getchar(access,1,2)>=0 &&
@getchar(access,1,2)<=23 &&
@getchar(access,3,1)={:} &&
@getchar(access,4,2)>=00 &&
@getchar(access,4,2)<=59,
{Yes},{ACCESS:=access;WAITS(access);im({No})},
{No},{im({Yes})}
);
},
{ 2},
{RETCD:={Cancel};im({No})},
{ 3},
{RETCD:={Start};im({No})},
,{im({Yes})}
);
});
};
%WAITS {
[access]
var waits [6];
%hh @getchar(access,1,2);
%mm @getchar(access,4,2);
loop ({
%now @daylong;
%nowhh @getchar(now,16,2);
%nowmm @getchar(now,19,2);
%nowss @getchar(now,22,2);
waits:= ((hh*60+mm)*60) - ((nowhh*60+nowmm)*60+nowss);
case (waits<(-60),{Yes},{waits:=waits+24*60*60});
case (waits<0,{Yes},{waits:=1});
footnote(access|{に自動通信を開始します。}|
{ PF5:即時開始 PF10:通信メニューへ});
waitx (waits);
case (@xtype,
{-2}, /* 指定時刻 */
{SNDMSG({jikan_f.snd});RETCD:={Start};im({No})},
{110}, /* PF10 通信メニューへ */
{RETCD:={Cancel};im({No})},
{105}, /* PF5 即時開始指定 */
{RETCD:={Start};im({No})},
,{im({Yes})}
);
});
};
/************************************************************************
* NIFTYの今週の天気予報(NAPLPS)を見ながら *
* NAPLPS 画像データを 切り出し 保存 する 処理 *
* presented by -なる-☆早川 (92.12.30) *
* customized by コノミ (93.03.11) *
*************************************************************************/
%GOWEATHER{
[WTHRno,CNTno]
footnote({天気予報(NAPLPS) }|WTHRno|{ の }|CNTno|{ を確認中});
display({\n今週の天気予報(NAPLPS)を確認します\n});
receive(TEMP2|{WEATHER.TMP});
case(CUGFLAG,{Yes},{GONIF});
type({GO WEATHER\n});
Where:={};
/* WAITCHAR(Wtime2,{ 7. NAPLPS天気予報\n>},{type({7\n})}); */
WAITCHAR(Wtime2,{ 7. NAPLPS天気予報},{WAITABORT(Wtime2);type({7\n})});
WAITCHAR(Wtime2,{ 2. サービスに入る\n>},{type({2\n})});
case (WTHRno={},
{Yes}, {WAITCHAR(Wtime2*2,{(J},{type({E\n})})},
{No}, {WAITCHAR(Wtime2*2,{(J},{type(WTHRno|{\n})});
case(CNTno={},
{Yes}, {WAITCHAR(Wtime2*2,{(J},{type({E\n})})},
{No}, {WAITCHAR(Wtime2*2,{(J},
{type(CNTno|{\n})});
WAITCHAR(Wtime2*2,{(J},{type({\n})})}
)});
WAITCHAR(Wtime2*2,{ 2. サービスに入る\n>},{});
stoprec;
%file @crefile(LOG2|{WEATHER},{NPB});
%cdir @getcdir;
setcdir(CDIR);
dispoff(!DEBUG);
command({txl -npcut }| { -i }|TEMP2|{WEATHER.TMP}|
{ -o }|LOG2|{WEATHER\}|file);
delfile(TEMP2|{WEATHER.TMP});
setcdir(cdir);
dispoff({No});
display({\n天気予報(NAPLPS)確認処理を完了しました\n});
};
/************************************************************************
* NEW(今週のお知らせ)を見る処理 *
*************************************************************************/
%GONEW {
var newlist [60];
%preNEW{
display({\n今週のお知らせオートダウンの調整を行います\n});
dispoff(!DEBUG);
display({3回メッセージの調整を行いますm(_ _)m\n});
case(CUGFLAG,{Yes},{GONIF});
type({GO NEW\n});
wait(Wtime2,{AbortOff({\nホストの反応が鈍いよぉ~(T◇T)\n})},
{今週のお知らせ NEW\n\n},{});
Where:={};
loop ({
wait (Wtime2,
{AbortOff({\nホストの反応が鈍いよぉ~(T_T)\n})},
{\n>},{im({No})},
{\n},
{
%line1 @tail(@body(@laststr(80),,{\n}),{\n});
%checkline @getchar(line1,7);
write(UP2|{fapxnews.ctl},checkline|CRLF);
case ((@body(oldnews,checkline)={} &&
@body(oldnews,,checkline)={}) &&
@body(checkline,,{(再掲載)})={},
{Yes},
{case (newlist={},
{Yes},
{newlist:=@getchar(line1,1,4)
+1-1},
,{newlist:=newlist|{,}|
@getchar(line1,1,4)
+1-1}
);
});
im({Yes});
});
});
dispoff({No});
};
type({SET PAGE OFF\n});
WAITABORT(Wtime2);
case (READNEW,
{New},
{
case (@filechk(UP2|{fapxnews.ctl}),
{Yes},
{
%oldnews @read(UP2|{fapxnews.ctl});
delfile(UP2|{fapxnews.ctl});
preNEW;
},
{No},{%oldnews {};preNEW}
);
});
footnote({今週のお知らせダウンロード中});
display({今週のお知らせをダウンロードします\n});
display({\n newlist=}|newlist|{ です。\n}); /*ハ 蛇足!! */
LOGforum({NEW},{start});
case(CUGFLAG,{Yes},{GONIF});
type({GO NEW\n});
wait (Wtime2,
{AbortOff({\nホストの反応が鈍いよぉ~\n})},
{\n>},
{
type({\n});
WAITABORT(Wtime2);
Where:={};
case (READNEW,
{New},{type(newlist|{\n})},
,{type({1-\n})});
loop ({
wait (Wtime2*5,
{AbortOff({\nホストの反応が鈍いよぉ~\n})},
{続き (改行で次文書 E:終了)\n>},
{type({\n});im({Yes})},
{表示終了\n>},
{im({No})}
);
});
},
{\n-現在情報はありません-\n},
);
LOGforum({NEW},{stop});
};
/* 接続時の今週のお知らせの記録する処理 */
%NewIDX {
delfile(TEMP2|{newidx.tmp});
write (TEMP2|{newidx.tmp},{今週のお知らせ NEW\n});
receive(TEMP2|{newidx.tmp});
footnote({今週のお知らせの項目をダウンロード中});
loop ({
wait(Wtime2,{AbortOff({\nホストの反応が鈍いよぉ~(T◇T)\n})},
{\n>},
{stoprec;footnote({});im({No})},
{\n},{im({Yes})})
});
};
/* 今週のお知らせの項目の照合処理 */
%CHKnew {
dispoff(!DEBUG);%ndir TEMP2|{ndir.tmp};
case (COMPRESS={Yes}&&@filechk(ARCHIVER)={Yes},{Yes},
{command(ARCHIVER|{ l }|LOG2|{NEW *.idx | sort /r > }|ndir);
%ld @read(ndir,5);
%lnf @case(@noline(ld)>4,{No},{im({})},{Yes},
{%nf @head(@getchar(@getline(ld,1,1),3,12),{ });
command(ARCHIVER|{ e }|LOG2|{NEW }|TEMP2|{ }|nf);
im(@read(TEMP2|nf))});
case (lnf<>@read(TEMP2|{newidx.tmp})||lnf={},{Yes},
{%dt @crefile(TEMP,{idx});
command({ren }|TEMP2|{newidx.tmp }|dt);
command(ARCHIVER|{ a }|LOG2|{NEW }|TEMP2|dt)
});
command({del }|TEMP2|{*.idx});
},{No},
{command({dir }|LOG2|{NEW\*.idx | sort /r > }|ndir);
%ld @read(ndir);
%lnf @case(@noline(ld)>5,{No},{im({})},{Yes},
{im(@read(LOG2|{NEW\}|@getchar(@getline(ld,1,1),1,8)|
{.IDX}))});
case (lnf<>@read(TEMP2|{newidx.tmp})||lnf={},{Yes},
{
%dt @crefile(LOG2|{NEW},{idx});
dispoff(!DEBUG);
command({copy }|TEMP2|{newidx.tmp }|LOG2|{NEW\}|dt);
dispoff({No});
});
});
delfile(TEMP2|{newidx.tmp});delfile(ndir);
dispoff({No});
};
/************************************************************************
* 課金情報を見る処理 *
*************************************************************************/
%GOBILL {
footnote({課金情報を確認しています});
display({課金情報を確認します\n});
/* case(CUGFLAG,{Yes},{type({GO BILL\n})},,{type({GO NEWBILL\n})}); */
type({GO BILL\n});
LOGforum({BILL},{start});
wait (Wtime2,
{AbortOff({\nホストの反応が鈍いよぉ~\n})},
{1. ご案内},
{WAITABORT(Wtime2);type({2\n})}
);
wait (Wtime2*2,
{AbortOff({\nホストの反応が鈍いよぉ~\n})},
{日毎情報 (改行で表示 E:終了)\n>},
{
case (CHKBILL,
{Detail},
{
type({SET PAGE OFF\n});
WAITABORT(Wtime2);
type({\n});
wait (Wtime2*10,
{AbortOff({\nホストの反応が鈍いよぉ~\n})},
{1. ご案内},{WAITABORT(Wtime2)},
);
});
LOGforum({BILL},{stop});
},
{表示情報選択},
{
WAITABORT(Wtime2);
case (CHKBILL,
{Detail},
{
type({SET PAGE OFF\n});
WAITABORT(Wtime2);
type({2\n});
wait (Wtime2,
{AbortOff({\nホストの反応が鈍いよぉ~\n})},
{表示月選択},
{
WAITABORT(Wtime2);
type({\n});
wait (Wtime2*10,
{AbortOff({\nホストの反応が}|
{鈍いよぉ~\n})},
{表示情報選択},
{
WAITABORT(Wtime2);
type({E\n});
WAITABORT(Wtime2);
});
});
});
LOGforum({BILL},{stop});
},
{1. ご案内},
{
WAITABORT(Wtime2);
LOGforum({BILL},{cancel});
});
Where:={};
};
/************************************************************************
* オンライン処理 *
*************************************************************************/
/* ログインのみの処理 */
%LOGIN1 {
FAPXLGIN;
case (RETCD={Start},{Yes},
{setcdir(CDIR);FREE1:={ 2};#FAPXFREE.PLP;LogOff;im({No})},
{No},{im({Yes})}
);
};
/* アップロード処理 */
%UPLD {setcdir(CDIR);#FAPXUPLD.PLP};
/* ダウンロード処理 */
%DNLD {setcdir(CDIR);#FAPXDNLD.PLP};
/* オンライン処理 */
%ONLINE1{
NewsDown:={No};
FAPXLGIN;
case (RETCD,
{Start},
{
delfile(TEMP2|{fapx.log});
case (@filechk(LOG2|{myforum.log})={No}&&MFRM<>{No},
{Yes},
{
display({MYFORUM.LOG を作成します\n});
footnote({MYFORUM.LOG を作成します});
case(CUGFLAG,{Yes},{GONIF});
receive(LOG2|{myforum.log});
type({MYFORUM\n});
wait(,,
{表示終了\n},{stoprec;WAITABORT(Wtime2)},
{ません -\n},{stoprec;WAITABORT(Wtime2)});
});
case (FREE1,{ 1},{setcdir(CDIR);#FAPXFREE.PLP});
case (PAD,
{first},
{
PADFILE:=@dir2(PADDIR)|{PAD};
case (@filechk(PADFILE),
{Yes},{setcdir(CDIR);#FAPXPAD.PLP});
PADFILE:={};
setcdir(CDIR);#FAPXPAD.PLP;
});
case (MAILDOWN={Yes}||MAILDOWN={TextOnly},
{Yes},{setcdir(CDIR);#FAPXMAIL.PLP});
case (@filechk(UP2|{_FORUM.CTL}),
{Yes},{setcdir(CDIR);#FAPXENTR.PLP});
case (WEATHER,{Yes},{GOWEATHER(AREA,CITY)});
case (UPT={first}&&@filechk(UP2|{fapxup.ctl})={Yes},
{Yes},{UPLD});
case (DNT={first}&&(
@filechk(UP2|{fapxdown.ctl})={Yes}||
@filechk(UP2|{fapxrtn.ctl})={Yes}),
{Yes},{DNLD});
DOWNSTART;
case (DONIFTY={No},
{No},
{
setcdir(CDIR);#FAPXLOOP.PLP;
});
setcdir(CDIR);#FAPXRTN.PLP;
DOWNSTOP;
case(CHKBILL={Yes}||CHKBILL={Detail},{Yes},{GOBILL});
case(READNEW,{Yes},{NewsDown:={Yes}});
case(NewsDown,{Yes},{GONEW});
NewsDown:={No};
case (PAD,
{last},
{
PADFILE:=@dir2(PADDIR)|{PAD};
case (@filechk(PADFILE),
{Yes},{setcdir(CDIR);#FAPXPAD.PLP});
PADFILE:={};
setcdir(CDIR);#FAPXPAD.PLP;
});
case(FREE1,{ 2},{setcdir(CDIR);#FAPXFREE.PLP});
case (UPT={last}&&@filechk(UP2|{fapxup.ctl})={Yes},
{Yes},{UPLD});
case (DNT={last}&&(
@filechk(UP2|{fapxdown.ctl})={Yes}||
@filechk(UP2|{fapxrtn.ctl})={Yes}),
{Yes},{DNLD});
LogOff;
SNDMSG({owata_f.snd});wait(2);
case (fapxend,
{ 1},{PLTSTOP},
{ 2},{stopterm},
{ 3},{setcdir(CDIR);command({poff});im({No})},
{ 4},{im({No})}
);
},
,{im({Yes})});
};
%FAPXLGIN{
var N1 [2];
var N2 [2];
var N31 [2];
var N32 [2];
var N33 [2];
var road1 [20];
var road2 [20];
var road3 [20];
%CHECK3AM{
case (AM3,
{Yes},{WAIT3AM},
{Detail},{WAITSETTIME},
,{RETCD:={Start}}
);
case(RETCD,{Start},{AUTOLOGIN});
};
case (@linechck,
{Yes},
{
SNDMSG({kaknin_f.snd});
footnote({回線接続中です。NIFTYにログインし直しますか});
select ({回線接続中です。NIFTYにログインし直しますか},
Wtime4,
{CHECK3AM},
{NIFTYにログインした後、実行する},
{CHECK3AM},
{ログインし直さず、そのまま実行する},
{initmode;gotoTOP(0);MLcnt:=-1;RETCD:={Start}}
);
},
{No},{CHECK3AM}
);
};
/************************************************************************
* NIFTYへの通信メインメニュー *
************************************************************************/
%ONLINE {
var APTYPE [1]; APTYPE:={x};
var FREE1 [3]; FREE1:= { 3}; var donifty [2];
var upt [2]; var dnt [2]; var pad [2];
var mail [2]; var delmail [2]; var chksdl [2];
var weather [2]; var readnew [2]; var chkbill [2];
var free1 [2]; var ap3 [2]; var am3 [2];
var fapxend [2]; var setup [2]; var updnset [2];
var ok [2];
loop ({
SNDMSG({erande_f.snd});
footnote({現在のユーザー設定ファイル=}|SETFILE1|
{ NIFTY設定ファイル=}|SETFILE2);
free1:= FREE1;
donifty:=@case (DONIFTY,
{Yes},{im({ 1})},{No},{im({ 3})},
{},{im({ 1})},,{im({ 2})});
upt:= @case (UPT,
{first},{im({ 1})},{last},{im({ 2})},
{No},{im({ 3})},,{im({ 1})});
dnt:= @case (DNT,
{first},{im({ 1})},{last},{im({ 2})},
{No},{im({ 3})},,{im({ 1})});
pad:= @case (PAD,
{forum},{im({ 1})},{first},{im({ 2})},
{last},{im({ 3})},{None},{im({ 4})},
,{im({ 4})});
mail:= @case (MAILDOWN,
{Yes},{im({ 1})},{TextOnly},{im({ 2})},
{No},{im({ 3})},,{im({ 1})});
delmail:=@YesNo(MAILDEL,{2});
chksdl:=@YesNo(CHKSDL,{2});
weather:=@YesNo(WEATHER,{2});
readnew:=@case (READNEW,
{Yes},{im({ 1})},{New},{im({ 2})},
{Idx},{im({ 3})},{No},{im({ 4})},,{im({ 4})});
chkbill:=@case (CHKBILL,
{Yes},{im({ 1})},{Detail},{im({ 2})},
{Sometimes},{im({ 4})},,{im({ 3})});
ap3:=@YesNo(AP3,{2});
am3:= @case (AM3,
{Yes},{im({ 1})},{Detail},{im({ 2})},
,{im({ 3})});
fapxend:=@case (FAPXEND,
{stopfapx},{im({ 1})},{stopmop},{im({ 2})},
{poweroff},{im({ 3})},{continue},{im({ 4})},
,{im({ 4})});
var udtp[1]; udtp:=0;
case (@filechk(UP2|{fapxup.ctl}),{Yes},{udtp:=udtp+1});
case (@filechk(UP2|{fapxdown.ctl})={Yes}||
@filechk(UP2|{fapxrtn.ctl})={Yes},
{Yes},{udtp:=udtp+2});
%b {r自動通信処理(NIFTYでの処理)/する/強制巡回/しない\n};
%c @case(udtp=1||udtp=3,{Yes},
{im({rアップロード処理(予約あり) /最初/最後/しない \n})},
{No},
{im({cアップロード処理(予約なし)\n})});
%d @case(udtp=2||udtp=3,{Yes},
{im({rダウンロード処理(予約あり) /最初/最後/しない \n})},
{No},
{im({cダウンロード処理(予約なし)\n})});
/* %c @case(udtp=1||udtp=3,{Yes},
{im({rアップロード処理 /最初(巡回前)/最後(巡回後)/しない\n})},
{No},
{im({cアップロード処理(予約なし)\n})});
%d @case(udtp=2||udtp=3,{Yes},
{im({rダウンロード処理 /最初(巡回内)/全体の最後/しない\n})},
{No},
{im({cダウンロード処理(予約なし)\n})}); */
%e {rPAD処理 /巡回のみ/最初/最後/しない\n}|
{rメールのダウンロード /する/テキストのみ/しない\n}|
{r 既読メールの削除 /する/しない \n}|
{r メール送信簿の確認 /する/しない \n}|
{r天気予報(NAPLPS)の確認 /する/しない \n}|
{r今週のお知らせのダウンロード/強制/オート/項目/しない\n}|
{r課金情報の確認 /する/詳細情報/しない/するかも\n}|
{r自由行動 /最初/最後/しない \n}|
{rアクセスポイント種別 /ROAD3・4 /ROAD1・2\n}|
{r通信開始時間 /割引時間/時刻指定/即時\n}|
{r通信終了後 /FAPX終了/MOPT終了}|
{/電源切断/FAPX継続\n}|
{s設定変更処理 /NIFTY設定 / 各種設定 }|
{/ 詳細設定 \n}|
{sアップ・ダウン指定設定処理 / アップロード / ダウンロード }|
{/フォーラム登録 \n}|
{s通信を開始する / 開 始 / 半自動 }|
{/ 終 了 \n};
%a @case(udtp,
0,
{im(@plane(b|c|d|e,donifty,pad,mail,
delmail,chksdl,weather,readnew,chkbill,
FREE1,ap3,am3,fapxend))
},
1,
{im(@plane(b|c|d|e,donifty,upt,pad,mail,
delmail,chksdl,weather,readnew,chkbill,
FREE1,ap3,am3,fapxend))
},
2,
{im(@plane(b|c|d|e,donifty,dnt,pad,mail,
delmail,chksdl,weather,readnew,chkbill,
FREE1,ap3,am3,fapxend))
},
3,
{im(@plane(b|c|d|e,donifty,upt,dnt,pad,mail,
delmail,chksdl,weather,readnew,chkbill,
FREE1,ap3,am3,fapxend))
});
donifty:=@head(@getline(a,1,1),{\n});
case(udtp=1||udtp=3,{Yes},{upt:=@head(@getline(a,2,1),{\n})});
case(udtp,
2,{dnt:=@head(@getline(a,2,1),{\n})},
3,{dnt:=@head(@getline(a,3,1),{\n})});
case(udtp>1,{Yes},{udtp:=udtp-1});
pad:= @head(@getline(a,2+udtp,1),{\n});
mail:= @head(@getline(a,3+udtp,1),{\n});
delmail:=@head(@getline(a,4+udtp,1),{\n});
chksdl:=@head(@getline(a,5+udtp,1),{\n});
weather:=@head(@getline(a,6+udtp,1),{\n});
readnew:=@head(@getline(a,7+udtp,1),{\n});
chkbill:=@head(@getline(a,8+udtp,1),{\n});
FREE1:= @head(@getline(a,9+udtp,1),{\n});
ap3:= @head(@getline(a,10+udtp,1),{\n});
am3:= @head(@getline(a,11+udtp,1),{\n});
fapxend:=@head(@getline(a,12+udtp,1),{\n});
setup:= @head(@getline(a,13+udtp,1),{\n});
updnset:=@head(@getline(a,14+udtp,1),{\n});
ok:= @head(@getline(a,15+udtp,1),{\n});
case (donifty,
{ 1},{DONIFTY:={Yes}},
{ 2},{DONIFTY:={Force}},
{ 3},{DONIFTY:={No}},
,{DONIFTY:={Yes}});
case (upt,
{ 1},{UPT:={first}},
{ 2},{UPT:={last}},
{ 3},{UPT:={No}},
,{UPT:={first}});
case (dnt,
{ 1},{DNT:={first}},
{ 2},{DNT:={last}},
{ 3},{DNT:={No}},
,{DNT:={first}});
case (pad,
{ 1},{PAD:={forum}},
{ 2},{PAD:={first}},
{ 3},{PAD:={last}},
{ 4},{PAD:={None}},
,{PAD:={None}});
case (mail,
{ 1},{MAILDOWN:={Yes}},
{ 2},{MAILDOWN:={TextOnly}},
{ 3},{MAILDOWN:={No}},
,{MAILDOWN:={Yes}});
case (delmail,
{ 1},{MAILDEL:={Yes}},
{ 2},{MAILDEL:={No}},
,{MAILDEL:={No}});
case (chksdl,
{ 1},{CHKSDL:={Yes}},
{ 2},{CHKSDL:={No}},
,{CHKSDL:={No}});
case (weather,
{ 1},{WEATHER:={Yes}},
{ 2},{WEATHER:={No}},
,{WEATHER:={No}});
case (readnew,
{ 1},{READNEW:={Yes}},
{ 2},{READNEW:={New}},
{ 3},{READNEW:={Idx}},
{ 4},{READNEW:={No}},
,{READNEW:={No}});
case (chkbill,
{ 1},{CHKBILL:={Yes}},
{ 2},{CHKBILL:={Detail}},
{ 3},{CHKBILL:={No}},
{ 4},{CHKBILL:={Sometimes}},
,{CHKBILL:={No}});
case (am3,
{ 1},{AM3:={Yes}},
{ 2},{AM3:={Detail}},
{ 3},{AM3:={No}},
,{AM3:={No}});
case (ap3,
{ 1},{AP3:={Yes}},
{ 2},{AP3:={No}},
,{AM3:={No}});
case (fapxend,
{ 1},{FAPXEND:={stopfapx}},
{ 2},{FAPXEND:={stopmop}},
{ 3},{FAPXEND:={poweroff}},
{ 4},{FAPXEND:={continue}},
,{FAPXEND:={continue}});
case (ok,
{ 1},
{case (DONIFTY={No}&&UPT={No}&&DNT={No}&&
MAILDOWN={No}&&WEATHER={No}&&
READNEW<>{Yes}&&CHKBILL={No}&&FMNEWS={No},
{Yes}, {LOGIN1},
{No}, {case (@SETFORCE,
{Yes},{ONLINE1},
{No},{im({Yes})}
);
}
);
},
{ 2},{SEMIAUTO},
{ 3},{im({No})},
,
{
case (setup,
{ 1},{setcdir(CDIR);#FAPXNIF.PLP},
{ 2},{setcdir(CDIR);#FAPXSET.PLP},
{ 3},{setcdir(CDIR);#FAPXSETC.PLP});
case (updnset,
{ 1},{setcdir(CDIR);#FAPXUSET.PLP},
{ 2},{setcdir(CDIR);#FAPXDSET.PLP},
{ 3},{setcdir(CDIR);#FAPXTSET.PLP});
case (ok={ 0}&&setup={ 0}&&updnset={ 0},
{Yes},{im({No})},
{No},{im({Yes})});
});
});
};
/************************************************************************
* 半自動通信処理 *
************************************************************************/
%SEMIAUTO{
var Nifty[1000];
var NOLINE[2];
var NOLINE2[2];
var check[3];
var a[26];
var b[12];
var c[8];
var n[2];
var d[2];
var onenif[256];
case (NIFTY={},
{No},
{
n:=1;
d:=1;
loop ({
onenif:=@getline(NIFTY,n,1);
case (onenif={\n},
{Yes},,
{No},
{
case (@nth(onenif,1,{/}),
{ホームパーティ},{b:= {HP }},
{パティオ},{b:= {PATIO }},
{フォーラム},{b:={フォーラム }},
{CUG会議室},{b:= {CUGMES }},
{再ログイン},{b:={再ログイン}},
,{b:=@nth(onenif,1,{/})}
);
%jumpcode @nth(onenif,3,{/});
c:=@SPP(jumpcode,8,1);
a:=b|{:}|c;
case (d,
1,{Nifty:=Nifty|{s /}|a;
d:=2;NOLINE:=NOLINE+1},
2,{Nifty:=Nifty|{/}|a;d:=3},
3,{Nifty:=Nifty|{/}|a|{\n};d:=1}
);
case (@getline(NIFTY,n+1,1),
{},
{
case(d<>1,{Yes},{Nifty:=Nifty|{\n}});
im({No});
},
,{n:=n+1;im({Yes})}
);
});
});
loop ({
SNDMSG({erande_f.snd});
footnote({処理を選んでください});
select ({処理を選んでください},
Wtime4,
{
chat({Yes});
loop ({
footnote({再開},{b});
waitx();
case (@xtype,
101, {im({No})},
201, {im({No})}
);
});
footnote({});
chat({No});
im({Yes});
},
{ ログイン },
{FAPXLGIN;im({Yes})},
{ ログアウト },
{LogOff;im({Yes})},
{ メール受信 },
{
case(MLcnt<1,{Yes},{MLcnt:=-1});
setcdir(CDIR);#FAPXMAIL.PLP;
im({Yes});
},
{ 巡 回 },
{
DONIFTY:={Yes};
DOWNSTART;
setcdir(CDIR);#FAPXLOOP.PLP;
DOWNSTOP;
im({Yes});
},
{ 指定巡回 },
{SELSEMI},
{ 強制巡回 },
{setforce},
{ アップロード },
{UPLD;im({Yes})},
{ ダウン ロード },
{DNLD;im({Yes})},
{ 天気予報 },
{GOWEATHER(AREA,CITY);im({Yes})},
{ 今週のお知らせ },
{GONEW;im({Yes})},
{ 課金情報 },
{GOBILL;im({Yes})},
{ 自由行動 },
{setcdir(CDIR);#FAPXFREE.PLP;im({Yes})},
{ PAD処理 },
{execPAD;im({Yes})},
{ 手 動 },
{
chat({Yes});
loop ({
footnote({再開},{b});
waitx();
case (@xtype,
101, {im({No})},
201, {im({No})}
);
});
footnote({});
chat({No});
im({Yes});
},
{ 終 了 },
{im({No})}
);
});
});
};
/* 半自動通信指定巡回処理 */
%SELSEMI{
DOWNSTART;
loop ({
SNDMSG({erande_f.snd});
footnote({巡回する場所を指定してください});
%a @plane({c巡回する場所を指定してください\n}|
Nifty|
{s / 戻 る });
NOLINE2:=1;
check:={No};
%ok @head(@getline(a,NOLINE+1,1),{\n});
case (Nifty={},
{No},
{
loop ({
case (@head(@getline
(a,NOLINE2,1),{\n}),
{ 1},
{
DONIFTY:=NOLINE2*3-2;
setcdir(CDIR);
#FAPXLOOP.PLP;
check:={Yes};
im({No});
},
{ 2},
{
DONIFTY:=NOLINE2*3-1;
setcdir(CDIR);
#FAPXLOOP.PLP;
check:={Yes};
im({No});
},
{ 3},
{
DONIFTY:=NOLINE2*3;
setcdir(CDIR);
#FAPXLOOP.PLP;
check:={Yes};
im({No});
},
,
{
case (NOLINE2,
NOLINE,
{im({No})},
,
{
NOLINE2:=NOLINE2+1;
im({Yes});
});
});
});
});
im(!(ok={ 1}||check={No}));
});
DOWNSTOP;
im({Yes});
};
/* PADファイル内容確認 */
%KAKUNIN{
var file1 [64];
var memono [1];
case (@mlast==9,{Yes},{memono:=9},{No},{memono:=@mlast+1});
setcdir(PADDIR);
loop ({
footnote({PADファイルを選択してください});
file1:=@filesel;
case(file1<>{},{Yes},{file1:=@dir2(@getcdir)|file1});
case (file1={}||@filechk(file1)={No},
{Yes},{file1:={}},
{No},
{
footnote({PADファイルを確認します});
InactMemo;
madd(memono,{});
mclear(memono);
mread(file1,memono);
mopen(memono,0,21,639,459,{w});
%a @loop ({
footnote({指定 次 取消},{b});
waitx();
case (@xtype,
101,{im(file1)},
201,{im(file1)},
102,{im({next})},
202,{im({next})},
103,{im({cancel})},
203,{im({cancel})},
,{im({Yes})}
);
});
InactMemo;
case (a,
{next},{im({Yes})},
{cancel},{file1:={};im({No})},
,{im({No})}
);
});
});
loop ({
case(@mlast>=memono,{Yes},{mopen(@mlast);mclose(3)});
im(@mlast>=memono);
});
im(file1);
};
/* PAD処理 */
%execPAD{
PADFILE:=@KAKUNIN;
setcdir(CDIR);#FAPXPAD.PLP;
Where:={};
};
/************************************************************************
* 強制巡回設定処理 *
************************************************************************/
%setforce{
SNDMSG({erande_f.snd});
select({強制巡回のタイプを選んでください},
Wtime4,{im({Yes})},
{ 設定場所全巡回 }, {DONIFTY:={All};
DOWNSTART;
setcdir(CDIR);#FAPXLOOP.PLP;
DOWNSTOP;
im({Yes})},
{ フォーラム全巡回 }, {DONIFTY:={Forum};
DOWNSTART;
setcdir(CDIR);#FAPXLOOP.PLP;
DOWNSTOP;
im({Yes})},
{ HP全巡回 }, {DONIFTY:={Hp};
DOWNSTART;
setcdir(CDIR);#FAPXLOOP.PLP;
DOWNSTOP;
im({Yes})},
{ パティオ全巡回 }, {DONIFTY:={Patio};
DOWNSTART;
setcdir(CDIR);#FAPXLOOP.PLP;
DOWNSTOP;
im({Yes})},
{ 日付無視 }, {DONIFTY:={Day};
DOWNSTART;
setcdir(CDIR);#FAPXLOOP.PLP;
DOWNSTOP;
im({Yes})},
{ 時間無視 }, {DONIFTY:={Time};
DOWNSTART;
setcdir(CDIR);#FAPXLOOP.PLP;
DOWNSTOP;
im({Yes})},
{ キャンセル }, {im({Yes})});
};
/* 強制巡回指定処理 */
%SETFORCE{
case (DONIFTY,
{Force},
{
SNDMSG({erande_f.snd});
select({強制巡回のタイプを選んで下さい},
Wtime4,{im({No})},
{ 設定場所全巡回 },{DONIFTY:={All};im({Yes})},
{ フォーラム全巡回 },{DONIFTY:={Forum};im({Yes})},
{ HP全巡回 },{DONIFTY:={Hp};im({Yes})},
{ パティオ全巡回 },{DONIFTY:={Patio};im({Yes})},
{ 日付無視 },{DONIFTY:={Day};im({Yes})},
{ 時間無視 },{DONIFTY:={Time};im({Yes})},
{ キャンセル },{im({No})});
},
,{im({Yes})}
);
};
/************************************************************************
* 通信処理メイン *
************************************************************************/
var RECFILE [64]; /* receivefile 名(フルパス) */
var FTITLE [64]; /* フォーラムタイトル */
var TELNO [20]; /* 電話番号 */
var RETCD [6]; /* FAPXLGINのリターンコード */
var RecForm [16]; /* 異常終了の際のレコードフラグ */
var NewsDown[3]; /* 今週のお知らせダウンフラグ */
var Where [80]; /* NIFTY内の現在位置 */
var Stime [7]; /* CONNECT後のLOGIN終了時間(秒) */
var UID [8]; /* ログイン中のUSER-ID */
var mltitle[128]; /* RTN,LIBリスト取得用トラップ */
var DLMFLAG [3]; /* DLM ON/OFF状態フラグ */
var PADFILE [64]; /* PAD制御ファイル名 */
var CUGFLAG [3]; /* CUG移動状態フラグ */
var RtcOpen [1]; /* RTCチャンネルオープンフラグ */
var MLcnt [2]; /* 未読メール数 */
DLMFLAG:={No};
ONLINE;